import store from '../store' // store

export function getTopIconDistance() {
	uni.getSystemInfo({
		success: (res) => {
			// 获取手机顶部状态栏的高度
			const statusBarHeight = res.statusBarHeight || 0

			// 获取导航栏的高度（手机状态栏高度 + 胶囊高度 + 胶囊的上下间距）
			const menuButtonInfo = uni.getMenuButtonBoundingClientRect()
			const navBar = menuButtonInfo.height + (menuButtonInfo.top - statusBarHeight) * 2

			// 计算顶部图标距离
			const topIconDistance = statusBarHeight + navBar

			const navBarHeight = topIconDistance + 'px' // 导航栏的高度
			const navBarPaddingTop = statusBarHeight + 'px' // 导航栏的上边距
			let useHeight = res.screenHeight - topIconDistance // 可以使用的页面高度【去除顶部导航】
			let tabBarHeight = res.screenHeight - res.windowHeight // tabbar的高度【有安全区域的包含安全区域】
			let mainSearchHeight = useHeight - tabBarHeight - 65 + 'px' // 有tabBar，有搜索框的页面高度
			let mainHeight = useHeight - tabBarHeight + 'px' // 有tabBar，没有搜索框的页面高度
			let noTabSearchHeight = useHeight - res.safeAreaInsets.bottom - 65 + 'px' // 没有tabBar，有搜索框的页面高度
			let noTabMainHeight = useHeight - res.safeAreaInsets.bottom + 'px' // 没有tabBar，没有搜索框的页面高度
			// let mainHeight = 0 // 没有搜索框有tabBar的页面高度
			// let noTabMainHeight = 0 // 没有搜索框没有tabBar的页面高度
			// let mainSearchHeight = 0 // 有搜索框有tabBar的页面高度
			// let noTabSearchHeight = 0 // 有搜索框没有tabBar的页面高度
			// if (res.safeArea.bottom === res.screenHeight) {
			//   // 没有安全区域的高度
			//   mainHeight = (res.screenHeight - topIconDistance - 48)  + 'px'
			//   noTabMainHeight = (res.windowHeight - topIconDistance)  + 'px'
			//   mainSearchHeight = (res.screenHeight - topIconDistance - 113)  + 'px'
			//   noTabSearchHeight = (res.windowHeight - topIconDistance - 65)  + 'px'
			// } else {
			//   // 有安全区域的高度
			//   mainHeight = (res.safeArea.height - topIconDistance)  + 'px'
			//   noTabMainHeight = (res.safeArea.bottom - topIconDistance)  + 'px'
			//   mainSearchHeight = (res.safeArea.height - topIconDistance - 65)  + 'px'
			//   noTabSearchHeight = (res.safeArea.bottom - topIconDistance - 65)  + 'px'
			// }
			store.commit('HEIGHT_DATA', {
				mainHeight,
				navBarHeight,
				navBarPaddingTop,
				noTabMainHeight,
				mainSearchHeight,
				noTabSearchHeight,
				safeHeight: res.safeAreaInsets.bottom
			})
		},
		fail: (err) => {}
	})
}

// 加法
export function numberAdd(arg1, arg2) {
	if ((!arg1 || !arg2) && arg1 != 0 && arg2 != 0) {
		console.log('Error: 加法需要传入2个数字')
		return
	}
	let arg1Length = 0 // a的小数部分长度
	let arg2Length = 0 // b的小数部分长度
	try {
		arg1Length = arg1.toString().split('.')[1].length
	} catch (f) {}
	try {
		arg2Length = arg2.toString().split('.')[1].length
	} catch (f) {}

	let resNum = 10 ** Math.max(arg1Length, arg2Length) // 保证a、b为整数的最小10次幂
	return (arg1 * resNum + arg2 * resNum) / resNum
}

// 减法
export function numberSub(arg1, arg2) {
	if ((!arg1 || !arg2) && arg1 != 0 && arg2 != 0) {
		console.log('Error: 减法运算需要传入2个数字')
		return
	}
	let arg1Length = 0 // a的小数部分长度
	let arg2Length = 0 // b的小数部分长度
	try {
		arg1Length = arg1.toString().split('.')[1].length
	} catch (f) {}
	try {
		arg2Length = arg2.toString().split('.')[1].length
	} catch (f) {}

	let resNum = 10 ** Math.max(arg1Length, arg2Length) //保证a、b为整数的最小10次幂
	return parseFloat((arg1 * resNum - arg2 * resNum) / resNum).toFixed(2)
}

// 乘法
export function numberMul(arg1, arg2) {
	if ((!arg1 || !arg2) && arg1 != 0 && arg2 != 0) {
		console.log('Error: 乘法运算需要传入2个数字')
		return
	}
	let arg1Length = 0 // a的小数部分长度
	let arg2Length = 0 // b的小数部分长度
	try {
		arg1Length = arg1.toString().split('.')[1].length
	} catch (f) {}
	try {
		arg2Length = arg2.toString().split('.')[1].length
	} catch (f) {}

	return (Number(arg1.toString().replace('.', '')) * Number(arg2.toString().replace('.', ''))) / (10 ** (arg1Length +
		arg2Length))
}

// 除法
export function numberDiv(arg1, arg2) {
	if ((!arg1 || !arg2) && arg1 != 0) {
		console.log('Error: 减法运算需要传入2个数字')
		return
	}
	let arg1Length = 0 // a的小数部分长度
	let arg2Length = 0 // b的小数部分长度
	try {
		arg1Length = arg1.toString().split('.')[1].length
	} catch (f) {}
	try {
		arg2Length = arg2.toString().split('.')[1].length
	} catch (f) {}

	const molecule = Number(arg1.toString().replace('.', '')) * (10 ** (arg1Length + arg2Length))
	const denominator = Number(arg2.toString().replace('.', '')) * (10 ** (arg1Length + arg2Length))
	return molecule / denominator / (10 ** (arg1Length - arg2Length))
}

//转换分钟
export function convertMinutesToHoursMinutes(totalMinutes) {
	// 计算小时数，使用整除运算符'//'得到完整的小时数  
	const hours = Math.floor(totalMinutes / 60);
	// 计算剩余的分钟数，使用求余运算符'%'得到剩余的分钟数  
	const minutes = totalMinutes % 60;
	// 将小时和分钟拼接成字符串并返回，你可以根据需要调整格式  
	return hours > 0 ? `${hours}小时${minutes}分钟` : `${minutes}分钟`;
}

//计算忙碌时间
export function isTimeInRange(time, ranges) {
	// 将输入时间转换为分钟表示，方便比较  
	const inputTimeInMinutes = parseInt(time.split(':')[0]) * 60 + parseInt(time.split(':')[1]);
	// 遍历时间范围数组  
	for (let range of ranges) {
		// 分割时间范围字符串为开始时间和结束时间  
		const [startTime, endTime] = range.split('-');
		// 将开始和结束时间也转换为分钟表示  
		const startTimeInMinutes = parseInt(startTime.split(':')[0]) * 60 + parseInt(startTime.split(':')[1]);
		const endTimeInMinutes = parseInt(endTime.split(':')[0]) * 60 + parseInt(endTime.split(':')[1]);
		// 检查输入时间是否在时间范围内  
		if (inputTimeInMinutes >= startTimeInMinutes && inputTimeInMinutes <= endTimeInMinutes) {
			return true; // 时间在范围内  
		}
	}
	return false; // 时间不在任何范围内  
}

export const handlePositiveNumber = (num1, num2) => {
	const total = Number(num1) + Number(num2);
	return `￥${Math.floor(Math.abs(total))}.00`
}
